import Vuex from 'vuex'

export default function initPrompt(v) {
    // 挂在store到全局Vue原型上
    v.prototype.$promptStore = new Vuex.Store({
        state: {
            show: false,
            title: "温馨提示", //标题
            content: "",//内容
            black: false, // 暗黑模式
            bottomBorder: false, // 是否显示标题底部边线
            showCancel: false, //是否显示取消按钮
            confirmText: '确认', //确认文字
            confirmColor: 'primary', //确认按钮颜色
            cancelText: '取消',//取消文字
            cancelColor: 'primary', //取消按钮颜色
            theme: 'split', //merge合并按钮，split分割按钮
            overClose: true, //是否允许点击遮罩关闭Modal
            success: null,
            duration: 0, // 定时关闭

        },
        mutations: {
            hidePrompt(state) {
                // 小程序导航条页面控制
                // #ifndef H5
                if (state.hideTabBar) {
                    wx.showTabBar();
                }
                // #endif
                state.show = false
            },
            showPrompt(state, data) {
                state = Object.assign(state, data)
                state.show = true
                console.log('------state====', state);
                if (state.duration) {
                    setTimeout(() => {
                        state.show = false
                    }, state.duration)
                }
            },
            success(state, data) {
                return state.success(state)
            }
        }
    })
    // 注册$showPrompt到Vue原型上，以方便全局调用
    v.prototype.$showPrompt = function (option) {
        if (typeof option === 'object') {
            // #ifndef H5
            if (option.hideTabBar) {
                wx.hideTabBar();
            }
            // #endif
            v.prototype.$promptStore.commit('showPrompt', option)
        } else {
            throw "配置项必须为对象传入的值为：" + typeof option;
        }
    }
    uni.$showPrompt = v.prototype.$showPrompt
}

